Fork me on GitHub

Décodage syndrome

Le décodage syndrome est une technique générale de décodage des codes linéaires ayant un coût meilleur que celui de la recherche exhaustive dans beaucoup de cas.

Le syndrome

Soit un code linéaire de paramètres , de matrice de parité et de matrice génératrice . Pour nos exemples, nous allons considérer le code de paramètres défini par les matrices suivantes

On rappelle qu’un message est encodé avec le mot de code . Dans notre exemple, le message est encodé par

Le destinataire reçoit un mot bruité , où est un vecteur d’erreur contenant au plus positions d’erreur. Le syndrome du mot est la valeur

où les égalités découlent de la linéarité de la multiplication de matrices et du fait que est la matrice de parité du code (et que donc pour tout mot de code ). Dans notre exemple, en supposant qu’il y ait eu une erreur en quatrième position, on a

Décodage par syndrome

Comme on a vu ci-dessus, le syndrome d’un mot ne dépend que de l’erreur et pas du tout du mot de code . Même sans connaître l’erreur, on peut donc calculer son syndrome en calculant le produit .

Une fois calculé le syndrome , on trouve l’erreur par recherche sur tous les mots d’erreur possibles. Comme notre code est 1-correcteur, les seules erreurs qu’on peut corriger sont celles de poids au plus 1, c’est à dire les erreurs suivantes

qui correspondent aux syndromes suivants

Dans notre exemple, on était tombés sur le syndrome , qui correspond à l’erreur , c’est à dire une erreur en quatrième position.

Pour les codes 1-correcteurs, comme celui de notre exemple, on peut trouver l’erreur directement sans énumérer tous les syndromes possibles. Si le syndrome est zéro, alors nécessairement et il n’y a pas eu d’erreurs. Sinon, on note le vecteur contenant un à la position et partout ailleurs; souvenez vous qu’alors , où est la -ème colonne de . Par exemple

On peut donc trouver l’erreur simplement en cherchant dans la colonne qui correspond au syndrome.

Une fois trouvée l’erreur , on retrouve le mot de code . Il ne reste plus qu’à trouver le mot d’origine tel que . Mais, puisque est sous forme systématique, ceci est immédiat: le mot d’origine apparaît tel quel dans les premières composantes du mot de code. Dans notre exemple

Pour résumer, voici l’algorithme de décodage par syndrome.

Entrée: Un mot bruité , la matrice de parité (sous forme systématique).

Sortie: Le message d’origine .

  1. Calculer le syndrome ;
  2. Chercher l’erreur telle que ;
  3. Calculer le mot de code ;
  4. Le message d’origine se trouve dans les premières composantes de .